什么是Spark | 您所在的位置:网站首页 › flume 集群 › 什么是Spark |
Spark原理 Spark的应用运行结构如下图。 运行流程如下: 1、应用程序(Application)是作为一个进程的集合运行在集群上的,由Driver进行协调。 2、在运行一个应用时,Driver会去连接集群管理器(Standalone、Mesos、YARN)申请运行Executor资源,并启动ExecutorBackend。然后由集群管理器在不同的应用之间调度资源。Driver同时会启动应用程序DAG调度、Stage划分、Task生成。 3、然后Spark会把应用的代码(传递给SparkContext的JAR或者Python定义的代码)发送到Executor上。 4、所有的Task执行完成后,用户的应用程序运行结束。 Spark Streaming Spark Streaming是一种构建在Spark上的实时计算框架,扩展了Spark处理大规模流式数据的能力。当前Spark支持两种数据处理方式:Direct Streaming和Receiver方式。 SparkSQL和DataSet SparkSQL是Spark中用于结构化数据处理的模块。在Spark应用中,可以无缝的使用SQL语句亦或是DataSet API对结构化数据进行查询。 SparkSQL以及DataSet还提供了一种通用的访问多数据源的方式,可访问的数据源包括Hive、CSV、Parquet、ORC、JSON和JDBC数据源,这些不同的数据源之间也可以实现互相操作。SparkSQL复用了Hive的前端处理逻辑和元数据处理模块,使用SparkSQL可以直接对已有的Hive数据进行查询。 另外,SparkSQL还提供了诸如API、CLI、JDBC等诸多接口,对客户端提供多样接入形式。 SparkSession SparkSession是Spark编程的统一API,也可看作是读取数据的统一入口。SparkSession提供了一个统一的入口点来执行以前分散在多个类中的许多操作,并且还为那些较旧的类提供了访问器方法,以实现最大的兼容性。 Structured Streaming Structured Streaming是构建在Spark SQL引擎上的流式数据处理引擎,用户可以使用Scala、Java、Python或R中的Dataset/DataFrame API进行流数据聚合运算、按事件时间窗口计算、流流Join等操作。当流数据连续不断的产生时,Spark SQL将会增量的、持续不断的处理这些数据并将结果更新到结果集中。同时,系统通过checkpoint和Write Ahead Logs确保端到端的完全一次性容错保证。 Structured Streaming的核心是将流式的数据看成一张不断增加的数据库表,这种流式的数据处理模型类似于数据块处理模型,可以把静态数据库表的一些查询操作应用在流式计算中,Spark执行标准的SQL查询,从不断增加的无边界表中获取数据。 |
CopyRight 2018-2019 实验室设备网 版权所有 |